Hata fırlatma (Exception Handling), bir programın çalışma zamanında karşılaştığı beklenmedik veya olağandışı durumları (hata) tespit etme ve bu durumlara uygun şekilde tepki verme işlemidir. Hata fırlatma mekanizması, programın normal akışını kesintiye uğratan hataları yakalayarak, programın çökmesini engellemeyi ve hatanın nedenini belirleyerek uygun bir şekilde ele almayı amaçlar.
**Temel Kavramlar:**
* **Hata (Exception):** Programın normal akışını bozan olağandışı bir olaydır. Örneğin, sıfıra bölme, dosya bulunamaması veya bellek yetersizliği gibi durumlar birer hatadır. ([https://www.nedemek.page/kavramlar/hata%20(exception)](https://www.nedemek.page/kavramlar/hata%20(exception)))
* **Hata Fırlatma (Throwing an Exception):** Bir hata oluştuğunda, programın ilgili bölümü bir hata nesnesi oluşturur ve bu nesneyi "fırlatır". Bu, hatanın oluştuğu yerden daha üst bir seviyede ele alınmasını sağlar. ([https://www.nedemek.page/kavramlar/hata%20fırlatma](https://www.nedemek.page/kavramlar/hata%20fırlatma))
* **Hata Yakalama (Catching an Exception):** "Try-Catch" blokları kullanılarak, fırlatılan hatalar yakalanır ve uygun şekilde ele alınır. "Try" bloğu, hata oluşma potansiyeli olan kodu içerirken, "Catch" bloğu ise belirli türdeki hataları yakalar ve işler. ([https://www.nedemek.page/kavramlar/hata%20yakalama](https://www.nedemek.page/kavramlar/hata%20yakalama))
* **Finally Bloğu:** Try-Catch bloklarına isteğe bağlı olarak eklenen "Finally" bloğu, hata oluşsa da oluşmasa da her durumda çalıştırılır. Genellikle kaynakları serbest bırakmak (dosyaları kapatmak, bellek alanlarını boşaltmak vb.) için kullanılır. ([https://www.nedemek.page/kavramlar/finally%20bloğu](https://www.nedemek.page/kavramlar/finally%20bloğu))
**Neden Hata Fırlatma Kullanılır?**
* **Hata Yönetimini Merkezileştirme:** Hata fırlatma, hataların programın farklı bölümlerinde ele alınmasını sağlayarak, hata yönetimi kodunu merkezi bir yerde toplar.
* **Okunabilirlik ve Bakım Kolaylığı:** Try-Catch blokları, program kodunu daha okunabilir ve bakımı daha kolay hale getirir.
* **Programın Güvenilirliğini Artırma:** Beklenmedik hataların programın çökmesine neden olmasını engeller ve daha güvenilir bir çalışma ortamı sağlar.
**Örnek (Python):**
```python
try:
sayi1 = int(input("Bir sayı girin: "))
sayi2 = int(input("Başka bir sayı girin: "))
sonuc = sayi1 / sayi2
print("Sonuç:", sonuc)
except ValueError:
print("Hata: Geçersiz giriş. Lütfen sayı girin.")
except ZeroDivisionError:
print("Hata: Sıfıra bölme hatası.")
except Exception as e: #Tüm hataları yakalamak için genel bir Exception bloğu kullanılabilir.
print("Bilinmeyen bir hata oluştu:", e)
finally:
print("İşlem tamamlandı.")
Ne Demek sitesindeki bilgiler kullanıcılar vasıtasıyla veya otomatik oluşturulmuştur. Buradaki bilgilerin doğru olduğu garanti edilmez. Düzeltilmesi gereken bilgi olduğunu düşünüyorsanız bizimle iletişime geçiniz. Her türlü görüş, destek ve önerileriniz için iletisim@nedemek.page